What is Oracle RAC and Why Use it for Scaling Workloads?

Like1
Comments 0

Share to social media

Oracle Real Application Clusters (RAC) runs a single Oracle database across multiple servers at once, so the database keeps running if a node fails and can scale by adding nodes rather than buying a bigger machine.

It works because every node shares the same storage and a global cache keeps the instances consistent. RAC is the right choice for mission-critical transactional workloads that need continuous availability and horizontal scale; it is more than most systems need, and the licensing, storage and administration cost is significant.

This article explains the five things RAC gives you – horizontal scalability, the shared global cache, dynamic workload distribution, instance resiliency with failover, and the shared-everything architecture – so you can decide whether it is worth it.

Oracle Real Application Clusters (RAC) is a database clustering solution that enables multiple servers to operate as a single, unified system. Designed to deliver instance resiliency, scalability, and fault tolerance, Oracle RAC allows a single database to run across multiple interconnected nodes. With a myriad of features and architecture designs to meet a variety of needs, this architecture is a unique solution with optimal performance, which makes it an ideal choice for many mission-critical applications.

From RAC flex clusters, RAC for Multitenant, to RAC One-node, RAC has come a long way since its introduction in Oracle 9i. For this article, a standard RAC, 2-node database environment will be used with the simplest architecture. No Automatic Storage Management(ASM) for file system management or multiple voting disks, (we’ll assume that mirroring at the file system level has been implemented) and we’ll only have two nodes, when in truth, RAC can scale to as many nodes as 100 in Oracle 19c.

A diagram of a computer network

Description automatically generated with medium confidence

Fig. 1, Non-Multitenant, 2-Node, RAC Database

As for a disclaimer: Anyone who has done extensive optimization in relational systems will recognize that scaling compute will not guarantee performance, but when used as part of a full optimization exercise, (infrastructure, code, application, and database design is all optimized) RAC can provide unique value at the database level to scale, especially around transactional or analytics workloads when used correctly.

At its core, Oracle RAC uses a shared-everything architecture, where all nodes in the cluster access the same set of database files stored on shared storage. This configuration provides the foundation for seamless scalability and dynamic workload management, which are essential for many mission-critical Oracle workloads.

In this article I will cover how RAC can help when scale Oracle workloads.

Horizontal Scalability

Oracle RAC excels at horizontal scaling by allowing additional nodes to be added to the cluster as workload demands grow. Horizontal scaling differs from vertical scaling, which uses a single, higher resource machine to achieve scaling needs. RAC distributes the workload across multiple nodes, is seamless and can be performed with minimal disruption to ongoing operations. If distributed dynamically or manually configured with even distribution across each node, Oracle RAC ensures that no single node becomes a performance bottleneck.

Each node in the cluster runs an Oracle Database instance, and these instances communicate with one another to coordinate access to shared data. This design ensures that applications can utilize the combined processing power of all nodes, delivering improved performance and responsiveness.

From a technical perspective, Oracle RAC uses a Global Cache Service (GCS) and Global Enqueue Service (GES) to manage data access and locking across nodes. These services coordinate memory and disk access, ensuring that all nodes have a consistent view of the database. This architecture supports efficient scaling while maintaining data integrity.

Shared Global Cache

The shared global cache is a pivotal component of Oracle RAC’s architecture, enabling efficient data sharing across all nodes in the cluster. Managed by the Global Cache Service (GCS), the shared cache ensures that data blocks accessed by one node are instantly available to other nodes, eliminating the need for redundant reads from disk.

This is achieved through a sophisticated mechanism of cache fusion, where data is transferred directly between nodes over the high-speed interconnect. The shared global cache not only reduces disk I/O but also ensures data consistency by implementing a global lock management system through the Global Enqueue Service (GES). This architecture supports low-latency access to shared data, making it possible to scale workloads effectively while maintaining optimal performance.

Dynamic Workload Distribution

Oracle RAC employs sophisticated workload distribution mechanisms to ensure optimal resource utilization. Using features like instance-level load balancing and database services, Oracle RAC dynamically assigns workloads to nodes with the best available capacity. This ensures that user sessions and transactions are evenly distributed, minimizing latency and maximizing throughput.

Additionally, Oracle RAC allows administrators to define specific services for different workloads, such as OLTP and analytics. These services can be mapped to specific nodes or distributed across the cluster, providing granular control over workload management.

As the workload increases, additional nodes can be added to scale the RAC database. Parallel processing can distribute across multiple nodes, eliminating cross competition when executed on a single host.

A diagram of a computer network

Description automatically generated

Fig. 2, Adding a Third Node to a RAC Cluster

Although nodes can be increased to scale, it’s important to identify the amount of IO that will be required and to distribute datafiles across the shared storage optimally. My experience has shown that scaling is limited if storage isn’t able to scale at the same rate as nodes added to the RAC environment.

Instance Resiliency with Failover Capabilities

Instance resiliency is a cornerstone of Oracle RAC’s design, but it shouldn’t be confused with full high availability but viewed as part of the overall architecture. In the event of a node failure, the workload is automatically redistributed to the remaining nodes in the cluster, dependent on the resources available. Node eviction is handled by the Voting Disks, which is an essential component of RAC shared storage. The recommended practice is to have mirroring set up to protect this vital component of RAC as the Voting Disks manage which nodes are part of the RAC cluster and communicates with each node via a heartbeat to the Cluster Services Sync Daemon (CSSD), which monitors the health of the RAC environment. If a quorum isn’t met, (minimum number of votes) for the cluster to continue operating the node in question, an eviction will occur.

In a well-architected RAC environment after a node eviction, the additional workload is handled seamlessly by the remaining nodes and the application tier reconnects to the database, with the session commencing again. This failover capability ensures little to no interruption to database operations, safeguarding against hardware or software failures with modern applications.

The active-active configuration of Oracle RAC—where all nodes handle workloads simultaneously—maximizes availability while maintaining efficient resource usage. An additional benefit of RAC is the ability to perform rolling batches and upgrades, allowing little to no downtime while performing regular maintenance. This capability is critical for many enterprises that require 24/7 database up time.

Shared-Everything Architecture

The shared-everything architecture of Oracle RAC enables all nodes to access the same database files stored on shared storage. This design eliminates the need for data replication between nodes, reducing complexity and ensuring data consistency.

From a technical perspective, Oracle RAC uses a Global Cache Service (GCS) and Global Enqueue Service (GES) to manage data access and locking across nodes. These services coordinate memory and disk access, ensuring that all nodes have a consistent view of the database. This architecture supports efficient scaling while maintaining data integrity.

When is RAC worth it?

1. What is Oracle RAC in simple terms?

One Oracle database, running on several servers at the same time. Each server runs its own instance, all instances read and write the same shared storage, and a global cache keeps them consistent, so applications see a single database that survives the loss of a node.

2. Do I actually need Oracle RAC, or is it overkill?

You need RAC if a single-instance outage is unacceptable and you cannot tolerate the minutes of downtime a failover cluster takes, or if a single server can no longer carry the workload and you need to scale out. If your availability target allows a restart and your load fits one well-sized server, single-instance Oracle with Data Guard is simpler and far cheaper. RAC adds licensing, shared storage, interconnect and operational complexity, so treat it as a solution to a specific availability or scale problem.

3. What is the difference between Oracle RAC and Data Guard?

RAC gives high availability and scalability within one site: multiple active instances on one database. Data Guard gives disaster recovery: a standby copy of the database, usually at another site, kept in sync and activated on failure. Many critical systems use both.

4. How does Oracle RAC handle node failure?

The surviving instances detect the failure, recover the failed instance’s in-flight transactions from the shared redo logs, and continue serving the database; connected sessions can be reconnected or failed over transparently depending on the client configuration. That is the instance-resiliency benefit the article describes.

Conclusion

Oracle RAC is a unique relational database architecture for scaling workloads in enterprise environments. By leveraging its shared-everything architecture, dynamic workload management, and horizontal scalability, Oracle RAC delivers impressive performance, availability, and flexibility. Its ability to grow with your workloads, maintain availability, and optimize performance makes it a popular solution for transactional Oracle workloads.

Simple Talk is brought to you by Redgate Software

Take control of your databases with the trusted Database DevOps solutions provider. Automate with confidence, scale securely, and unlock growth through AI.
Discover how Redgate can help you

This document contains proprietary information and is protected by copyright law.

Copyright © 2026 Red Gate Software Limited. All rights reserved

Article tags

About the author

Kellyn Pot'Vin-Gorman

DBAKevlar

See Profile

Kellyn Gorman is the multi-platform database and AI advocate at Redgate. She's been in the tech industry for a quarter of a century, specializing in Oracle, SQL Server, MySQL and PostgreSQL. Her focus on Azure and Google Cloud for high IO workloads on IaaS has been of exceptional interest for data-infra specialists in the tech world. Her content is highly respected under her handle DBAKevlar. She is co-leader of the Data Platform DEI group, an executive board core member for DZone, and mentors around half a dozen people at any given time in multiple communities.